using System.IO;
using System.Xml;

namespace Altova.IO
{
	public abstract class Output
	{
		public enum OutputType
		{
			Writer,
			Stream,
			XmlDocument
		}

		public OutputType type;

		public OutputType Type
		{
			get
			{
				return type;
			}
		}

		public abstract TextWriter Writer { get; }

		public abstract Stream Stream { get; }

		public abstract XmlDocument Document { get; }

		public Output(OutputType t)
		{
			type = t;
		}

		public virtual void Close()
		{
		}
	}
}
